/**
 * 示例：如何使用 detection 函数获取视频或音频文件的详细信息
 */
import detection from '../ffmpeg/detection.js';
import path from 'path';
import { fileURLToPath } from 'url';

// pnpm run example:detection

// 获取当前文件的目录路径（ES模块中没有__dirname）
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

// 示例输入路径
// const inputPath = path.join(__dirname, '../videos/sample.mp4');
const inputPath = "D:\\downloads\\音视频\\1.mp4";
// const inputPath = "D:\\downloads\\音视频\\DEWALT_Drill_Bit_Set,_14-Piece_360p.mp4";

// 调用函数并处理结果
detection(inputPath)
  .then((info) => {
    console.log('----------------- 媒体文件信息获取成功！ -----------------------');
    console.log(`文件格式: ${info.format.format_name}`);
    console.log(`时长: ${info.duration} 秒`);
    console.log(`文件大小: ${Math.round(info.size / 1024 / 1024 * 100) / 100} MB`);
    console.log(`比特率: ${Math.round(info.bitRate / 1000)} Kbps`);

    // 显示视频流信息
    if (info.videoStreams.length > 0) {
      console.log('视频流信息:');
      info.videoStreams.forEach((stream, index) => {
        console.log(`  流 #${index}:`);
        console.log(`    编解码器: ${stream.codec_name}`);
        console.log(`    分辨率: ${stream.width}x${stream.height}`);
        console.log(`    帧率: ${eval(stream.r_frame_rate).toFixed(2)} fps`);
      });
    }

    // 显示音频流信息
    if (info.audioStreams.length > 0) {
      console.log('音频流信息:');
      info.audioStreams.forEach((stream, index) => {
        console.log(`  流 #${index}:`);
        console.log(`    编解码器: ${stream.codec_name}`);
        console.log(`    采样率: ${stream.sample_rate} Hz`);
        console.log(`    声道数: ${stream.channels}`);
      });
    }
    console.log('----------------------------------------');
  })
  .catch((error) => {
    console.error('获取媒体信息失败:', error.message);
  });